using System;

using DevExpress.Xpo;

using DevExpress.ExpressApp;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation;

namespace FeatureCenter.Module.Reports {
	public enum EnumPropertyType { First, Second, Third }
	public class BusinessObject : NamedBaseObject {
		public BusinessObject(Session session) : base(session) { }
	}
	[VisibleInReports]
	public class ReportsParametersObject : NamedBaseObject {
		private string stringProperty;
		private DateTime dateTimeProperty;
		private bool boolProperty;
		private int integerProperty;
		private decimal decimalProperty;
		private float floatProperty;
		private double doubleProperty;
		private EnumPropertyType enumProperty;
		private BusinessObject businessObject;
		public ReportsParametersObject(Session session) : base(session) { }
		public string StringProperty {
			get { return stringProperty; }
			set { SetPropertyValue("StringProperty", ref stringProperty, value); }
		}
		public bool BoolProperty {
			get { return boolProperty; }
			set { SetPropertyValue("BoolProperty", ref boolProperty, value); }
		}
		public DateTime DateTimeProperty {
			get { return dateTimeProperty; }
			set { SetPropertyValue("DateTimeProperty", ref dateTimeProperty, value); }
		}
		public int IntegerProperty {
			get { return integerProperty; }
			set { SetPropertyValue("IntegerProperty", ref integerProperty, value); }
		}
		public decimal DecimalProperty {
			get { return decimalProperty; }
			set { SetPropertyValue("DecimalProperty", ref decimalProperty, value); }
		}
		public float FloatProperty {
			get { return floatProperty; }
			set { SetPropertyValue("FloatProperty", ref floatProperty, value); }
		}
		public double DoubleProperty {
			get { return doubleProperty; }
			set { SetPropertyValue("DoubleProperty", ref doubleProperty, value); }
		}
		public EnumPropertyType EnumProperty {
			get { return enumProperty; }
			set { SetPropertyValue("EnumProperty", ref enumProperty, value); }
		}
		public BusinessObject BusinessObject {
			get { return businessObject; }
			set { SetPropertyValue("BusinessObject", ref businessObject, value); }
		}
	}
}
